﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Gateway;

public partial class _Default3 : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //业务参数赋值；
        YXShop.Common.SysParameter sp = new YXShop.Common.SysParameter();
        //客户网站订单号，（现取系统时间，可改成网站自己的变量） 订单号必须在自身订单系统中保持唯一性
        System.DateTime currentTime = new System.DateTime();
        currentTime = System.DateTime.Now;
        string out_trade_no = currentTime.ToString("g");
        out_trade_no = out_trade_no.Replace("-", "");
        out_trade_no = out_trade_no.Replace(":", "");
        out_trade_no = out_trade_no.Replace(" ", "");

        string orderID = ChangeHope.WebPage.PageRequest.GetQueryString("OrdersID");
        if (orderID == "")
        {
            ChangeHope.WebPage.Script.AlertAndGoBack("参数错误");
        }

        string gateway = "https://www.alipay.com/cooperate/gateway.do?";	//支付接口
        string service = "create_direct_pay_by_user";                       //服务名称，这个是识别是何接口实现何功能的标识，请勿修改

        string seller_email = ChangeHope.WebPage.PageRequest.GetQueryString("UserID");   //商家签约时的支付宝帐号，即收款的支付宝帐号
        string sign_type = "MD5";                                           //加密类型,签名方式“不用改”
        string key = ChangeHope.WebPage.PageRequest.GetQueryString("MD5Key");    //安全校验码，与partner是一组，获取方式是：用签约时支付宝帐号登陆支付宝网站www.alipay.com，在商家服务我的商家里即可查到。
        string partner = ChangeHope.WebPage.PageRequest.GetQueryString("MerchantId");  //商户ID，合作身份者ID，合作伙伴ID
        string _input_charset = "utf-8";                                    //编码类型，完全根据客户自身的项目的编码格式而定，千万不要填错。否则极其容易造成MD5加密错误。

        string show_url = sp.DummyPaht + "Default.aspx";                    //展示地址，即在支付页面时，商品名称旁边的“详情”的链接地址。
        string subject = "订单号" + orderID;                               //商品名称，也可称为订单名称，该接口并不是单一的只能买一样东西，可把一次支付当作一次下订单
        string body = "订单号" + orderID + "应支付的货款";                                  //商品描述，即备注
        string total_fee = ChangeHope.WebPage.PageRequest.GetQueryString("TotalPrice");   //商品价格，也可称为订单的总金额

        string return_url = sp.SiteHttp + sp.DummyPaht + "onlinepayment/alipay3/Alipay_Return3.aspx"; //结果返回URL
        string notify_url = sp.SiteHttp + sp.DummyPaht + "onlinepayment/alipay3/Alipay_Notify3.aspx"; //通知返回URL

        //构造数组；
        //以下数组即是参与加密的参数，若参数的值不允许为空，若该参数为空，则不要成为该数组的元素
        string[] para ={
        "service="+service,
        "partner=" + partner,
        "seller_email=" + seller_email,
        "out_trade_no=" + out_trade_no,
        "subject=" + subject,
        "body=" + body,
        "total_fee=" + total_fee, 
        "show_url=" + show_url,
        "payment_type=1",
        "notify_url=" + notify_url,
        "return_url=" + return_url,
        "_input_charset="+_input_charset
        };

        //支付URL生成
        string aliay_url = AliPay.CreatUrl(
            //gateway,//GET方式传递参数时请去掉注释
            para,
            _input_charset,
            sign_type,
            key
            );

        //以下是GET方式传递参数
        //Response.Redirect(aliay_url);


        //以下是POST方式传递参数
        Response.Write("<form name='alipaysubmit' method='post' action='https://www.alipay.com/cooperate/gateway.do?_input_charset=utf-8'>");
        Response.Write("<input type='hidden' name='service' value=" + service + ">");
        Response.Write("<input type='hidden' name='partner' value=" + partner + ">");
        Response.Write("<input type='hidden' name='seller_email' value=" + seller_email + ">");
        Response.Write("<input type='hidden' name='out_trade_no' value=" + out_trade_no + ">");
        Response.Write("<input type='hidden' name='subject' value=" + subject + ">");
        Response.Write("<input type='hidden' name='body' value=" + body + ">");
        Response.Write("<input type='hidden' name='total_fee' value=" + total_fee + ">");
        Response.Write("<input type='hidden' name='show_url' value=" + show_url + ">");
        Response.Write("<input type='hidden' name='return_url' value=" + return_url + ">");
        Response.Write("<input type='hidden' name='notify_url' value=" + notify_url + ">");
        Response.Write("<input type='hidden' name='payment_type' value=1>");
        Response.Write("<input type='hidden' name='sign' value=" + aliay_url + ">");
        Response.Write("<input type='hidden' name='sign_type' value=" + sign_type + ">");
        Response.Write("</form>");
        Response.Write("<script>");
        Response.Write("document.alipaysubmit.submit()");
        Response.Write("</script>");
    }
    protected void BtnAlipay_Click(object sender, EventArgs e)
    {
        
    }
}
